#ifndef VIEWER_H
#define VIEWER_H
#include "../Control/Controller.h"
namespace View{
	class Viewer
	{
	public:
		Viewer(void);
		~Viewer(void);
		/**
		inform the view that some informations about the players has been modified
		*/
		virtual void playerStateChanged()=0;
		/**
		inform the view that some informations about the game board has been modified
		*/
		virtual void gameRefreshed()=0;
		/**
		inform the view that all informations have been updated
		*/
		virtual void refreshAll()=0;

		/**
		inform the view that the game status has changed ( switching between started and idle)
		*/
		virtual void gameStatusChanged()=0;

		/**
		inform the view that a player won the game
		@param idPlayer The id of the Winning player
		*/
		virtual void endGame(int idPlayer)=0;

		Viewer(Control::Controller *C);
	protected:
		Control::Controller *myController;
	};
}
#else
namespace View{
	class Viewer;
}
#endif